package gui.negocio.funcionario;

import gui.dados.cliente.TelaCadastrarCliente;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.MessageFormat;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import negocio.cliente.Cliente;

public class TelaRelatorio extends JFrame {
	
	private JTextArea txtRelatorio;
	private JScrollPane scrollRelatorio;
	private JButton btImprimir, btLimpar;
	private String nome ="";
	private Double preco = 0.0;
	private Cliente cliente;
	
	
	
	
	public TelaRelatorio(String titulo, int largura, int altura){
		super(titulo);
		this.setBounds(0, 0, largura, altura);
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		configurarTela();
		setVisible(true);
		
	}

	private void configurarTela() {
		
		txtRelatorio = new JTextArea();
		scrollRelatorio = new JScrollPane(txtRelatorio);
		
		btImprimir = new JButton("Imprimir relat�rio");
		btLimpar = new JButton("Limpar relat�rio");
		
		BorderLayout bl = new BorderLayout();
		
		setLayout(bl);
		
		JPanel painelSuperior = new JPanel();
		JPanel painelCentro = new JPanel();
		JPanel painelInferior = new JPanel();
		
		painelSuperior.setBackground(Color.red);
		painelCentro.setBackground(Color.white);
		painelInferior.setBackground(Color.red);
		
		add(painelSuperior, BorderLayout.NORTH);
		add(painelCentro, BorderLayout.CENTER);
		add(painelInferior, BorderLayout.SOUTH);
		
		painelSuperior.setLayout(new GridLayout(1,2));
		painelSuperior.add(btImprimir);
		painelSuperior.add(btLimpar);
		
		painelCentro.setLayout(new GridLayout(1,3));
		painelCentro.add(new JLabel());
		painelCentro.add(scrollRelatorio);
		painelCentro.add(new JLabel());
		
		painelInferior.add(new JLabel("CopyRigth UFRPE BSI 2� per�odo 2013"));
		
		txtRelatorio.insert("\n\nQuantidade total de pedidos: "+ TelaNota.qtdTotalDePedidos,txtRelatorio.getCaretPosition());
		txtRelatorio.insert("\n\nValor total recebido: R$ "+TelaNota.valorToTalDosPedidos,txtRelatorio.getCaretPosition());
		
		
		
		for(int i=0; i<= TelaNota.listaRelatorio.length-1;i++){
			Cliente cliente = TelaNota.listaRelatorio[i];
			if (cliente != null){
				for(int b = 0; b<= cliente.getPedido().length-1;b++)
					if(cliente.getPedido()[b] != null){
						for(int a = 0; a<= cliente.getPedido()[b].getNomeProduto().length-1;a++){
							if (cliente.getPedido()[b].getNomeProduto()[a] != null){
								
								nome = nome + "\n" + cliente.getPedido()[b].getNomeProduto()[a];
							}
				
						}
						
						preco = cliente.getPedido()[b].getTotal();
						
			
						txtRelatorio.insert("\n\nCliente: "+cliente.getNome(),txtRelatorio.getCaretPosition());
						txtRelatorio.insert("\n\nEndere�o: \n" + "Rua: " + cliente.getRua()
							+ "   N�mero: "+ cliente.getNumero()+ "\nBairro: "+ cliente.getBairro()
							+ "\nCidade: "+ cliente.getCidade(), txtRelatorio.getCaretPosition());
						txtRelatorio.insert("\n\nTelefone para contato:\n" + "Telefone fixo: " + cliente.getTelefoneFixo()
							+ "\nTelefone Celular: "+cliente.getTelefoneCelular(),txtRelatorio.getCaretPosition());
						
						txtRelatorio.insert("\n\nPedidos:" + nome + "\n\n" +"Total:  R$: " + preco.toString()+"\n\n---------",txtRelatorio.getCaretPosition());
						nome ="";
					}
				}
			}
			
			
		
		
		
		
		btImprimir.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					txtRelatorio.print(new MessageFormat("Relat�rio de pedidos\n"), new MessageFormat("P�gina - {0}"),true,
							null,null,true);
					
				} catch (Exception e) {
					Logger.getLogger(getClass().getName()).log(Level.SEVERE,null,e);
				}

				
			}
		});
		
		btLimpar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				for(int i =0; i<= TelaNota.listaRelatorio.length-1;i++){
					if(TelaNota.listaRelatorio[i] != null){
						Cliente cliente = new Cliente(TelaNota.listaRelatorio[i].getNome(),TelaNota.listaRelatorio[i].getTelefoneFixo(),TelaNota.listaRelatorio[i].getCidade());
						TelaCadastrarCliente.cdc.excluirCliente(TelaNota.listaRelatorio[i].getTelefoneFixo());
						TelaCadastrarCliente.cdc.adicionarCliente(cliente);
						
					}
				}
				TelaNota.listaRelatorio = new Cliente[100];
				TelaNota.qtdTotalDePedidos = 0;
				TelaNota.valorToTalDosPedidos = 0.0;
				txtRelatorio.setText("");
				JOptionPane.showMessageDialog(null, "Informa��es do relat�rio esvaziadas com sucesso");
				
			}
		});
		
	}

}
